1 Figure 1

xeno_umap_patients = readRDS("./Figures/xeno_patient_umap.rds")
xeno_umap_treatment = readRDS("./Figures/xeno_treatment_umap.rds")
xeno_deg = readRDS("./Figures/xeno_DEG.rds")
xeno_sipsic_heatmap = readRDS("./Figures/xeno_sipsic_heatmap.rds")
p1 = cowplot::plot_grid(xeno_umap_treatment,xeno_umap_patients,xeno_deg,ncol = 1,nrow = 3,labels = c("B","C","E"))
p2 = cowplot::plot_grid(NULL,xeno_sipsic_heatmap,ncol = 1,nrow = 2,labels = c("A","D"))
p3 = cowplot::plot_grid(p2,p1,nrow = 1,ncol = 2)
p3

pdf("./final_figures/fig1.pdf",width = 15,height = 15)
p3
dev.off()
null device 
          1 

2 Figure 2

xeno_nmf_heatmap = readRDS("./Figures/xeno_NMF_programs_heatmap.rds")
xeno_nmf_usage_UMAP = readRDS("./Figures/xeno_NMF_usage_UMAP.rds")
p = cowplot::plot_grid(xeno_nmf_usage_UMAP,xeno_nmf_heatmap,ncol = 1,labels = "AUTO")
p

pdf("./final_figures/fig2.pdf",width = 12,height = 17)
p
dev.off()
null device 
          1 

3 Figure 3

xeno_nmf_GSEA = readRDS("./Figures/xeno_nmf_GSEA.rds")
xeno_NMF_programs_dotplot = readRDS("./Figures/xeno_NMF_programs_dotplot.rds")
xeno_NMF_hypoxia_split_violin = readRDS("./Figures/xeno_NMF_hypoxia_split_violin.rds")
p1 = cowplot::plot_grid(xeno_NMF_programs_dotplot,xeno_NMF_hypoxia_split_violin, ncol = 1,labels = c("B","C"))
p = cowplot::plot_grid(xeno_nmf_GSEA,p1, ncol = 2,labels = c("A",NULL,NULL), rel_widths = c(1.5, 1))
p

pdf("./final_figures/fig3.pdf",width = 22,height = 12)
p
dev.off()
null device 
          1 

4 Figure 4

patients_nmf_usage_umap = readRDS("./Figures/patients_nmf_usage_umap.rds")
bivona_nmf_usage_umap =  readRDS("./Figures/bivona_nmf_usage_umap.rds")

bivona_nmf_dotplot = readRDS("./Figures/bivona_nmf_dotplot.rds")
bivona_nmf_violin = readRDS("./Figures/bivona_nmf_violin.rds")

patients_nmf_usage_dotplot =  readRDS("./Figures/patients_nmf_usage_dotplot.rds")
patients_nmf_hypoxia_violin = readRDS("./Figures/patients_nmf_hypoxia_violin.rds")
p1 = cowplot::plot_grid(bivona_nmf_usage_umap,patients_nmf_usage_umap, bivona_nmf_dotplot,patients_nmf_usage_dotplot,bivona_nmf_violin,patients_nmf_hypoxia_violin,nrow = 3, ncol = 2,labels = "AUTO",rel_heights = c(1.5,1,1))

p1

pdf("./final_figures/fig4.pdf",width = 19,height = 17)
p1
dev.off()
null device 
          1 

5 Fig 4 sup


bivona_known_genes_violin = readRDS("./Figures/bivona_hif_targets_violin.rds")
bivona_known_genes_dotplot = readRDS("./Figures/bivona_known_genes_dotplot.rds")

patients_hif_targets_violin = readRDS("./Figures/patients_hif_targets_violin.rds")
patients_signtures_dotplot =  readRDS("./Figures/patients_signtures_dotplot.rds")

xeno_signtures_dotplot = readRDS("./Figures/xeno_signtures_dotplot.rds")
xeno_hif_targets_violin = readRDS("./Figures/xeno_hif_targets_violin.rds")
p1 = cowplot::plot_grid(xeno_signtures_dotplot,patients_signtures_dotplot,bivona_known_genes_dotplot,xeno_hif_targets_violin,patients_hif_targets_violin,bivona_known_genes_violin,labels = "AUTO")

p1

pdf("./final_figures/fig4_sup.pdf",width = 24,height = 8)
p1
dev.off()
null device 
          1 
LS0tCnRpdGxlOiAnYHIgcnN0dWRpb2FwaTo6Z2V0U291cmNlRWRpdG9yQ29udGV4dCgpJHBhdGggJT4lIGJhc2VuYW1lKCkgJT4lIGdzdWIocGF0dGVybiA9ICJcXC5SbWQiLHJlcGxhY2VtZW50ID0gIiIpYCcgCmF1dGhvcjogIkF2aXNoYWkgV2l6ZWwiCmRhdGU6ICdgciBTeXMudGltZSgpYCcKb3V0cHV0OiAKICBodG1sX25vdGVib29rOiAKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgdG9jOiB5ZXMKICAgIHRvY19jb2xsYXBzZTogeWVzCiAgICB0b2NfZmxvYXQ6IAogICAgICBjb2xsYXBzZWQ6IEZBTFNFCiAgICBudW1iZXJfc2VjdGlvbnM6IHRydWUKICAgIHRvY19kZXB0aDogMQotLS0KCgoKIyBGaWd1cmUgMQoKCmBgYHtyfQp4ZW5vX3VtYXBfcGF0aWVudHMgPSByZWFkUkRTKCIuL0ZpZ3VyZXMveGVub19wYXRpZW50X3VtYXAucmRzIikKeGVub191bWFwX3RyZWF0bWVudCA9IHJlYWRSRFMoIi4vRmlndXJlcy94ZW5vX3RyZWF0bWVudF91bWFwLnJkcyIpCnhlbm9fZGVnID0gcmVhZFJEUygiLi9GaWd1cmVzL3hlbm9fREVHLnJkcyIpCnhlbm9fc2lwc2ljX2hlYXRtYXAgPSByZWFkUkRTKCIuL0ZpZ3VyZXMveGVub19zaXBzaWNfaGVhdG1hcC5yZHMiKQoKYGBgCgoKYGBge3IgZmlnLmhlaWdodD0xNSwgZmlnLndpZHRoPTE1fQpwMSA9IGNvd3Bsb3Q6OnBsb3RfZ3JpZCh4ZW5vX3VtYXBfdHJlYXRtZW50LHhlbm9fdW1hcF9wYXRpZW50cyx4ZW5vX2RlZyxuY29sID0gMSxucm93ID0gMyxsYWJlbHMgPSBjKCJCIiwiQyIsIkUiKSkKcDIgPSBjb3dwbG90OjpwbG90X2dyaWQoTlVMTCx4ZW5vX3NpcHNpY19oZWF0bWFwLG5jb2wgPSAxLG5yb3cgPSAyLGxhYmVscyA9IGMoIkEiLCJEIikpCnAzID0gY293cGxvdDo6cGxvdF9ncmlkKHAyLHAxLG5yb3cgPSAxLG5jb2wgPSAyKQpwMwpgYGAKCgpgYGB7cn0KcGRmKCIuL2ZpbmFsX2ZpZ3VyZXMvZmlnMS5wZGYiLHdpZHRoID0gMTUsaGVpZ2h0ID0gMTUpCnAzCmRldi5vZmYoKQpgYGAKCiMgRmlndXJlIDIKCgpgYGB7cn0KeGVub19ubWZfaGVhdG1hcCA9IHJlYWRSRFMoIi4vRmlndXJlcy94ZW5vX05NRl9wcm9ncmFtc19oZWF0bWFwLnJkcyIpCnhlbm9fbm1mX3VzYWdlX1VNQVAgPSByZWFkUkRTKCIuL0ZpZ3VyZXMveGVub19OTUZfdXNhZ2VfVU1BUC5yZHMiKQoKYGBgCgoKYGBge3IgZmlnLmhlaWdodD0xNywgZmlnLndpZHRoPTEyfQpwID0gY293cGxvdDo6cGxvdF9ncmlkKHhlbm9fbm1mX3VzYWdlX1VNQVAseGVub19ubWZfaGVhdG1hcCxuY29sID0gMSxsYWJlbHMgPSAiQVVUTyIpCnAKYGBgCmBgYHtyfQpwZGYoIi4vZmluYWxfZmlndXJlcy9maWcyLnBkZiIsd2lkdGggPSAxMixoZWlnaHQgPSAxNykKcApkZXYub2ZmKCkKYGBgCiMgRmlndXJlIDMKCmBgYHtyfQp4ZW5vX25tZl9HU0VBID0gcmVhZFJEUygiLi9GaWd1cmVzL3hlbm9fbm1mX0dTRUEucmRzIikKeGVub19OTUZfcHJvZ3JhbXNfZG90cGxvdCA9IHJlYWRSRFMoIi4vRmlndXJlcy94ZW5vX05NRl9wcm9ncmFtc19kb3RwbG90LnJkcyIpCnhlbm9fTk1GX2h5cG94aWFfc3BsaXRfdmlvbGluID0gcmVhZFJEUygiLi9GaWd1cmVzL3hlbm9fTk1GX2h5cG94aWFfc3BsaXRfdmlvbGluLnJkcyIpCmBgYAoKYGBge3IgZmlnLmhlaWdodD0xMiwgZmlnLndpZHRoPTIxfQpwMSA9IGNvd3Bsb3Q6OnBsb3RfZ3JpZCh4ZW5vX05NRl9wcm9ncmFtc19kb3RwbG90LHhlbm9fTk1GX2h5cG94aWFfc3BsaXRfdmlvbGluLCBuY29sID0gMSxsYWJlbHMgPSBjKCJCIiwiQyIpKQpwID0gY293cGxvdDo6cGxvdF9ncmlkKHhlbm9fbm1mX0dTRUEscDEsIG5jb2wgPSAyLGxhYmVscyA9IGMoIkEiLE5VTEwsTlVMTCksIHJlbF93aWR0aHMgPSBjKDEuNSwgMSkpCnAKYGBgCgpgYGB7cn0KcGRmKCIuL2ZpbmFsX2ZpZ3VyZXMvZmlnMy5wZGYiLHdpZHRoID0gMjIsaGVpZ2h0ID0gMTIpCnAKZGV2Lm9mZigpCmBgYAoKIyBGaWd1cmUgNAoKYGBge3J9CnBhdGllbnRzX25tZl91c2FnZV91bWFwID0gcmVhZFJEUygiLi9GaWd1cmVzL3BhdGllbnRzX25tZl91c2FnZV91bWFwLnJkcyIpCmJpdm9uYV9ubWZfdXNhZ2VfdW1hcCA9ICByZWFkUkRTKCIuL0ZpZ3VyZXMvYml2b25hX25tZl91c2FnZV91bWFwLnJkcyIpCgpiaXZvbmFfbm1mX2RvdHBsb3QgPSByZWFkUkRTKCIuL0ZpZ3VyZXMvYml2b25hX25tZl9kb3RwbG90LnJkcyIpCmJpdm9uYV9ubWZfdmlvbGluID0gcmVhZFJEUygiLi9GaWd1cmVzL2Jpdm9uYV9ubWZfdmlvbGluLnJkcyIpCgpwYXRpZW50c19ubWZfdXNhZ2VfZG90cGxvdCA9ICByZWFkUkRTKCIuL0ZpZ3VyZXMvcGF0aWVudHNfbm1mX3VzYWdlX2RvdHBsb3QucmRzIikKcGF0aWVudHNfbm1mX2h5cG94aWFfdmlvbGluID0gcmVhZFJEUygiLi9GaWd1cmVzL3BhdGllbnRzX25tZl9oeXBveGlhX3Zpb2xpbi5yZHMiKQpgYGAKCmBgYHtyIGZpZy5oZWlnaHQ9MTcsIGZpZy53aWR0aD0xN30KcDEgPSBjb3dwbG90OjpwbG90X2dyaWQoYml2b25hX25tZl91c2FnZV91bWFwLHBhdGllbnRzX25tZl91c2FnZV91bWFwLCBiaXZvbmFfbm1mX2RvdHBsb3QscGF0aWVudHNfbm1mX3VzYWdlX2RvdHBsb3QsYml2b25hX25tZl92aW9saW4scGF0aWVudHNfbm1mX2h5cG94aWFfdmlvbGluLG5yb3cgPSAzLCBuY29sID0gMixsYWJlbHMgPSAiQVVUTyIscmVsX2hlaWdodHMgPSBjKDEuNSwxLDEpKQoKcDEKYGBgCgpgYGB7cn0KcGRmKCIuL2ZpbmFsX2ZpZ3VyZXMvZmlnNC5wZGYiLHdpZHRoID0gMTksaGVpZ2h0ID0gMTcpCnAxCmRldi5vZmYoKQpgYGAKCiMgRmlnIDQgc3VwCmBgYHtyfQoKYml2b25hX2tub3duX2dlbmVzX3Zpb2xpbiA9IHJlYWRSRFMoIi4vRmlndXJlcy9iaXZvbmFfaGlmX3RhcmdldHNfdmlvbGluLnJkcyIpCmJpdm9uYV9rbm93bl9nZW5lc19kb3RwbG90ID0gcmVhZFJEUygiLi9GaWd1cmVzL2Jpdm9uYV9rbm93bl9nZW5lc19kb3RwbG90LnJkcyIpCgpwYXRpZW50c19oaWZfdGFyZ2V0c192aW9saW4gPSByZWFkUkRTKCIuL0ZpZ3VyZXMvcGF0aWVudHNfaGlmX3RhcmdldHNfdmlvbGluLnJkcyIpCnBhdGllbnRzX3NpZ250dXJlc19kb3RwbG90ID0gIHJlYWRSRFMoIi4vRmlndXJlcy9wYXRpZW50c19zaWdudHVyZXNfZG90cGxvdC5yZHMiKQoKeGVub19zaWdudHVyZXNfZG90cGxvdCA9IHJlYWRSRFMoIi4vRmlndXJlcy94ZW5vX3NpZ250dXJlc19kb3RwbG90LnJkcyIpCnhlbm9faGlmX3RhcmdldHNfdmlvbGluID0gcmVhZFJEUygiLi9GaWd1cmVzL3hlbm9faGlmX3RhcmdldHNfdmlvbGluLnJkcyIpCmBgYAoKCmBgYHtyIGZpZy5oZWlnaHQ9OCwgZmlnLndpZHRoPTI0fQpwMSA9IGNvd3Bsb3Q6OnBsb3RfZ3JpZCh4ZW5vX3NpZ250dXJlc19kb3RwbG90LHBhdGllbnRzX3NpZ250dXJlc19kb3RwbG90LGJpdm9uYV9rbm93bl9nZW5lc19kb3RwbG90LHhlbm9faGlmX3RhcmdldHNfdmlvbGluLHBhdGllbnRzX2hpZl90YXJnZXRzX3Zpb2xpbixiaXZvbmFfa25vd25fZ2VuZXNfdmlvbGluLGxhYmVscyA9ICJBVVRPIikKCnAxCmBgYAoKCmBgYHtyfQpwZGYoIi4vZmluYWxfZmlndXJlcy9maWc0X3N1cC5wZGYiLHdpZHRoID0gMjQsaGVpZ2h0ID0gOCkKcDEKZGV2Lm9mZigpCmBgYA==